// type: table | tree | item
const getDescribleData = (type = 'table') => ([
    {
        params: 'url',
        des: '接口请求地址；支持全路径和短路径；当传入 Function 时，入参为即将发起请求的params，函数需 return 新的接口地址，不 return 或 return 空值则会中断此次请求',
        type: 'String | Function(params)',
        values: '-',
        defaultVal: '-',
    },
    {
        params: 'method',
        des: '请求方式（小写）',
        type: 'String',
        values: '"get" | "post" | "put" ...',
        defaultVal: '-',
    },
    {
        params: 'params',
        des: '请求参数',
        type: 'Object',
        values: '-',
        defaultVal: '-',
    },
    {
        params: 'customSearchParams',
        des: '请求列表数据前的回调方法，支持 return 一个新的对象来替换即将发起请求的参数；该方法的回调参数为当前的请求参数params，支持异步处理',
        type: 'Function(params)',
        values: '-',
        defaultVal: '-',
    },
    {
        params: 'headers',
        des: '请求头配置',
        type: 'Object',
        values: '-',
        defaultVal: '-',
    },
    {
        params: 'autoSearch',
        des: '组件初始化时是否默认发起请求获取数据',
        type: 'Boolean',
        values: 'true | false',
        defaultVal: 'true',
    },
    {
        params: 'stringify',
        des: '接口请求参数是否以 FormData 提交，不配置或配置为 false 则使用 Request Payload 提交；仅 method 为 "post"、"delete"、"patch"、"put" 时有效',
        type: 'Boolean',
        values: 'true | false',
        defaultVal: 'false',
    },
    {
        params: 'callback',
        des: '当接口请求成功，组件内部会默认根据接口返回的结果自动寻找列表数据；你也可以通过 callback 回调方法来指定列表数据或者修改列表源数据，该方法参数为接口返回的res，需要 return 修改后的数据',
        type: 'Function(res)',
        values: '-',
        defaultVal: '-',
    },
    ...(['table'].includes(type) ? [
        {
            params: 'totalCallback',
            des: '当接口请求成功，组件内部会默认根据接口返回的结果自动寻找列表数据总条数；你也可以通过 totalCallback 回调方法来手动指定数据总条数',
            type: 'Function(res)',
            values: '-',
            defaultVal: '-',
        },
        {
            params: 'queryByFront',
            des: '点击查询按钮时，列表所进行的筛选操作是否由前端根据已经请求到的接口数据进行筛选过滤',
            type: 'Boolean',
            values: 'true | false',
            defaultVal: 'false',
            version: 'v1.0.8',
        },
    ] : []),
]);

export default getDescribleData;
